// 封装ajax请求
import axios from 'axios'
import qs from 'qs'
// axios.defaults.baseURL='http://localhost:4000'
import {getCookie} from '@/utils/index'
//请求拦截器

export default function ajax(url = '', data={}, type='GET'){
return new Promise(function (resolve, reject) {
  let promise
    if(type === 'GET') {
        //data: {username: tom, password: 123}
        let paramStr = ''
        Object.keys(data).forEach(key =>{
            paramStr += key + '=' + data[key] + '&'
        })
        if(paramStr) {
            paramStr = paramStr.substring(0, paramStr.length-1)
            url = url + '?' + paramStr
        }
        //发送get请求
        promise = axios.get(url)
    } else {
        //发送post请求,qs.stringify将数据转成form格式
        promise = axios.post(url, qs.stringify(data))
    }
        promise.then(function (response) {
          resolve(response.data)
        }).catch(function (error) {
          reject(error)
        })
  })
}

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  if(getCookie('token')){
    config.headers.token = getCookie('token')
    config.headers.type
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});